/*
 * @Author: 晟松
 * @Date: 2021-12-12 15:57:02
 * @LastEditors: 晟松
 * @LastEditTime: 2022-02-04 22:48:57
 * @FilePath: \mini-vue3d:\Code\node\koa2\volunteer-service\src\main\controller\UploadController.js
 * @Description: 上传文件、七牛云获取上传token等
 */
import Router from "koa-router";
import koaBodyparser from "koa-bodyparser";
import UploadService from "@main/service/UploadService";
import koaBody from "koa-body";

let uploadRouter = new Router({
    prefix: "/api/upload",
});
/**
 * @description: 上传单个文件
 * @param {*}
 * @return {*}
 */
uploadRouter.post(
    "/file",
    koaBody({
        multipart: true, //支持fordata表单上传文件
        formidable: {
            // 这里还有一些其他的配置，需要时去官网文档看
            maxFileSize: 2000 * 1024 * 1024, // 设置上传文件大小最大限制，默认2M
        },
    }),
    async (ctx) => {
        // files.file里面的 .file是在formdata表单中指定文件的属性名，可自定义
        let files = ctx.request.files.file;
        // console.log("files: ", files);
        let params = ctx.request.body;
        // console.log("params: ", params);
        ctx.body = ctx.renderJson(await UploadService.file(files, params));
    }
);
/**
 * @description: 文件存在本地
 * @param {*}
 * @return {*}
 */
uploadRouter.post(
    "/localFile",
    koaBody({
        multipart: true, //支持fordata表单上传文件
        formidable: {
            // 这里还有一些其他的配置，需要时去官网文档看
            maxFileSize: 2000 * 1024 * 1024, // 设置上传文件大小最大限制，默认2M
        },
    }),
    async (ctx) => {
        // files.file里面的 .file是在formdata表单中指定文件的属性名，可自定义
        let files = ctx.request.files.file;
        // console.log("files: ", files);
        let params = ctx.request.body;
        // console.log("params: ", params);
        ctx.body = ctx.renderJson(await UploadService.localFile(files, params));
    }
);

uploadRouter.post("/imgToken", koaBodyparser(), async (ctx) => {
    ctx.body = ctx.renderJson(await UploadService.imgToken(ctx.request.body));
});

export default uploadRouter;
